package features.advance.leetcode.geometry;


import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 67. 二进制求和
 *
 * 难度  简单
 *
 * 给你两个二进制字符串，返回它们的和（用二进制表示）。
 *
 * 输入为 非空 字符串且只包含数字 1 和 0。
 *
 *
 *
 * 示例 1:
 *
 * 输入: a = "11", b = "1"
 * 输出: "100"
 * 示例 2:
 *
 * 输入: a = "1010", b = "1011"
 * 输出: "10101"
 *
 *
 * 提示：
 *
 * 每个字符串仅由字符 '0' 或 '1' 组成。
 * 1 <= a.length, b.length <= 10^4
 * 字符串如果不是 "0" ，就都不含前导零。
 *
 */
public class Solution67 {
    public String addBinary(String a, String b) {


        return null;
    }



    public static void main(String[] args) {
        String a = "1101110";
        String b = "1";
        new Solution67(){
            @Override
            public String addBinary(String a, String b) {
                if (a == null || a.length() > Math.pow(10,4) || b == null || b.length() > Math.pow(10,4)) return null;
                char w = '0';
                for (int i = Math.max(a.length(), b.length()) - 1; i >= 0; i--) {
                    char c = i<a.length()?a.charAt(i):'0';
                    char c1 = i<b.length()?b.charAt(i):'0';
                    w = c == '1' && c1 == '1' ? w=='1'?'2':'1' : w=='1'?'1':'0' ;

                    System.out.println(
                            Arrays.asList(c,c1,w)
                    );





                }


                return null;
            }
        }.addBinary(a, b);

        new Solution67(){
            public void test(){
                List<String> strings = Arrays.asList("1.3", "1.1", "2.12545623723674673647346346734673286374672637467263476278361254562372367467364734634673467328637467263746721254562372367467364734634673467328637467263746726347627836472637486723645651363476278364726374867236456513125456237236746736473463467346732863746726374672634762783647263748672364565134726374867236456513", "2.125456235651");
                System.out.println(strings);// 流排序
                List<String> collect = strings.stream().sorted(Comparator.comparing(BigDecimal::new)).collect(Collectors.toList());
                System.out.println(collect);
            }
        }.test();


    }

}
